PROGRAM tests;

  CONST c1 = 10;  (* und noch einer*)
  CONST c2 = 1.0;
  (* blub*)
  TYPE tPtrInt = ^INTEGER;
    tReal = REAL;
  TYPE tBool = BOOLEAN;
  TYPE tString = STRING;
  TYPE tStringCopy = tString;
  TYPE arr = ARRAY [1..10, 1..10] OF INTEGER;
  TYPE comp = RECORD 
      i, j: INTEGER;
      iPtr: ^INTEGER;
    END;

  VAR 
    i, j, k, l: INTEGER;
    arr1: arr;
    arr2: ARRAY [1..2] OF INTEGER;
    comp1: comp;
    a: tBool;
    comp2: RECORD 
      i, k: INTEGER;
    END;
    intPtr: ^INTEGER;

  FUNCTION Test(a: INTEGER; b: INTEGER): INTEGER;
  BEGIN 
    (* todo: 'calc average' *);
    Test := a + b;
  END;

  PROCEDURE Test2;
  BEGIN 
  END;


BEGIN 
  (* todo: 'sometext' *);
  New(intPtr);
  Test(1, 2);
  IF TRUE THEN BEGIN 
    i := 1;
  END ELSE BEGIN 
    i := -1;
  END;
  WHILE i < 5 DO BEGIN 
    i := i + 1;
  END;
  FOR i := 1 TO 10 DO BEGIN 
  END;
  i := 1;
  REPEAT 
    i := i + 1;
    BREAK;
    HALT;
  UNTIL i > 5;

  ReadLn();
END.